package com.py.credit.service;

import com.py.credit.common.Page;
import com.py.credit.common.rest.RestServiceResult;
import com.py.credit.entity.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface LhjcBatchLogService {

    List<LhjcBatchLog> getListForPage(String startTime, String endTime, String batchId, String realName, String target, String result, Page page);

    /**
     * 更新记录
     *
     * @param batchId
     * @param status
     */
    void modify(String batchId, String status);

    /**
     * @param batchId
     * @param result
     * @param tcount
     * @param scount
     * @param fcount
     * @param rcount
     * @param status
     */
    void modify(String batchId, String result, int tcount, int scount, int fcount, int rcount, String status);

    /**
     * 上传文件
     */
    RestServiceResult doUploadFile(String absolutepath, LhjcCube cube, MultipartFile file, SysUser manager);

    /**
     * 获取未处理文件信息
     *
     * @return
     */
    List<LhjcBatchFile> getUntreatedFiles();

    /**
     * 获取采集批次详情
     *
     * @param batchId
     * @return
     */
    LhjcBatchLog select(String batchId);

    /**
     * 跟新入价值库状态
     */
    void updateBatchLogValStatus(String batchId, String valStatus);

    /**
     * 原文件下载
     *
     * @param batchId
     * @param response
     */
    void fileDownload(String absolutepath, String batchId, HttpServletResponse response);

    /**
     * 日志文件下载
     *
     * @param batchId
     * @param response
     */
    void logDownload(String absolutepath, String batchId, HttpServletResponse response);

    /**
     * 获取每日数据报表
     *
     * @param objList 主体List
     * @param orgBm
     * @return
     */
    Map<String, Object> getDayStat(List<LhjcBatchStat> objList, String orgBm);

    /**
     * 新增日志
     *
     * @param batchId
     * @param tableId
     * @param type
     * @param dataSourceId
     * @param orgBm
     * @param managerId
     * @param status
     */
    void add(String batchId, int tableId, String type, int dataSourceId, String orgBm, String result, long managerId,
             String status, String realName);

    /**
     * @param batchId
     * @param updateStatus
     */
    void updateUpdateTimeAndUpdateStatus(String batchId, String updateStatus);

    /**
     * 模板文件下载
     *
     * @param response
     */
    void downloadFilemb(String target, HttpServletResponse response);

    LhjcCube queryCubeById(int cubId);
}
